There are at least two types of high-level programming languages in use today. The primary types of languages may be classified as imperative or procedural languages and declarative programming languages. A procedural language is a programming language in which the basic programming element is a procedure (i.e., a named sequence of statements, such as a routine, subroutine, or function). Many high-level languages (e.g., Fortran, C or Pascal) are procedural languages. In these languages, the developer must provide a list of instructions to execute in a specified order. Although powerful, such languages have drawbacks in that developers must manage the flow of execution. Developers typically must write event-handlers and data structures to deal with application state, which may be quite difficult. Further, the developer typically has to manage the mapping between data structures and the visual elements representing the data structures. As a result, application developers must write a significant amount of underlying imperative code that is different from one application to another.
It is with respect to these considerations and others that the present invention has been made.